1. Field of the Invention
The present invention relates to an input/output subsystem of a computer system. In particular, the present invention relates to a periodic input/output control method and apparatus for implementing the real time input/output function of multimedia data such as video image data or audio data.
2. Description of the Related Art
Inputting/outputting in the existing computer systems is conducted as described below. A processor (CPU) starts an input/output operation of an input/output controller. The input/output controller for controlling input/output devices notifies the processor of completion of the input/output operation by using an external interrupt. For example, such processing is conducted in a disk device.
This is caused by the following facts. First, the operating system cannot predict beforehand when the application program issues an input/output request. Secondly, the time required until the completion of the issued input/output operation is indefinite. In other words, external interrupts are used as means for the input/output controller to notify the processor of an input/output completion event which occurrence time cannot be predicted.
An interface with a program (or function or subroutine) provided to the application program by the system to cause such input/output operation to be conducted is called normal input/output interface.
However, inputting/outputting multimedia data such as video images requiring the real time processing causes a problem that data transfer throughput required for the real time transfer cannot be realized due to the overhead of this interrupt processing. Strictly speaking, besides the input/output completion interrupt processing, overheads of the input/output system call and task switching become bottlenecks on the performance. (Hereafter, these are generally referred to as software overheads.)
In the Quick Time of Apple Computer (multimedia extension of the Macintosh operating system), a new application interface is provided in order to reduce this software overhead (Inside Macintosh: Quick Time and Inside Macintosh: Quick Time Components). In the case where video images taken in this interface from a video digitizer (video input device) are outputted to a display device, some initializing functions are called and then the display start function SGStartPreview is called.
When the application has called the function SGStartPreview, the transfer of video data from the video digitizer to the display device is started. Upon start of this transfer, the function SGStartPreview is normally brought to an end without waiting the completion of data transfer and returns to the application, but the transfer of the video data is continued. In other words, video data divided into a plurality of blocks are continuously transferred one after another from the video digitizer to the display device, but the application is not notified of the transfer completion of each block. Upon calling the function SGStop by the application, the transfer of the video data can be finished.
The interface of the Quick Time does not return the control to the application when the operation for inputting from the video digitizer or the operation for outputting to the display device has been completed. The transfer of video data once started is continued without an interposition of the application until the stop function SGStop is explicitly called.
An interface with a program (or function or subroutine) provided to the application program by the system to cause such input/output operation to be conducted is called multimedia data transfer interface.